package org.sdp.pearproject.dao.domain;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * InterfaceName: ProjectForListForInviteExample
 * @Description: 
 * @Author: SDP
 * @Date: 2022-07-12
 * @Version: 1.0
 * Table: pear_project
 * Comment:
 * 项目表
 */
public class ProjectForListForInviteExample {
    protected Integer limitClause;

    protected Integer countClause;

    protected Integer topClause;

    protected ProjectForListForInvite simple;

    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProjectForListForInviteExample() {
        oredCriteria = new ArrayList<>();
        simple = new ProjectForListForInvite();
    }

    public void setLimitClause(Integer limitClause) {
        this.limitClause = limitClause;
    }

    public Integer getLimitClause() {
        return limitClause;
    }

    public void setCountClause(Integer countClause) {
        this.countClause = countClause;
    }

    public Integer getCountClause() {
        return countClause;
    }

    public void setTopClause(Integer topClause) {
        this.topClause = topClause;
    }

    public Integer getTopClause() {
        return topClause;
    }

    public void setSimple(ProjectForListForInvite simple) {
        this.simple = simple;
    }

    public ProjectForListForInvite getSimple() {
        return simple;
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public static ProjectForListForInviteExample createExample(ProjectForListForInvite request) throws Exception {
        return createExample(request, null);
    }

    public static ProjectForListForInviteExample createExample(ProjectForListForInvite request, JSONObject options) throws Exception {
        ProjectForListForInviteExample example = new ProjectForListForInviteExample();
        example.setSimple(request);
        ProjectForListForInviteExample.Criteria criteria = example.createCriteria();
        int count = 0;

        if (options != null) {
            String orderBy = "";
            if (options.containsKey("order_by")) {
                JSONArray jsonArray = options.getJSONArray("order_by");
                orderBy = setCriteriaOrderBy(Criterion.toList(jsonArray, CriteriaString.class), example);
                if (orderBy.length() > 0) {
                    example.setOrderByClause(orderBy);
                }
            }
            if (options.containsKey("limit")) {
                example.setLimitClause(+options.getInteger("limit"));
            }
            if (options.containsKey("count")) {
                example.setCountClause(+options.getInteger("count"));
            }
            if (options.containsKey("top")) {
                example.setTopClause(+options.getInteger("top"));
            }

            if(options.containsKey("=")) {
                ProjectForListForInvite obj = JSONObject.toJavaObject(options.getJSONObject("="), ProjectForListForInvite.class);
                count += setCriteriaEqualTo(obj, criteria);
            }
            if(options.containsKey(">")) {
                ProjectForListForInvite obj = JSONObject.toJavaObject(options.getJSONObject(">"), ProjectForListForInvite.class);
                count += setCriteriaGreaterThan(obj, criteria);
            }
            if(options.containsKey(">=")) {
                ProjectForListForInvite obj = JSONObject.toJavaObject(options.getJSONObject(">="), ProjectForListForInvite.class);
                count += setCriteriaGreaterThanOrEqualTo(obj, criteria);
            }
            if(options.containsKey("!null")) {
                ProjectForListForInvite obj = JSONObject.toJavaObject(options.getJSONObject("!null"), ProjectForListForInvite.class);
                count += setCriteriaIsNotNull(obj, criteria);
            }
            if(options.containsKey("null")) {
                ProjectForListForInvite obj = JSONObject.toJavaObject(options.getJSONObject("null"), ProjectForListForInvite.class);
                count += setCriteriaIsNull(obj, criteria);
            }
            if(options.containsKey("<")) {
                ProjectForListForInvite obj = JSONObject.toJavaObject(options.getJSONObject("<"), ProjectForListForInvite.class);
                count += setCriteriaLessThan(obj, criteria);
            }
            if(options.containsKey("<=")) {
                ProjectForListForInvite obj = JSONObject.toJavaObject(options.getJSONObject("<="), ProjectForListForInvite.class);
                count += setCriteriaLessThanOrEqualTo(obj, criteria);
            }
            if(options.containsKey("like")) {
                ProjectForListForInvite obj = JSONObject.toJavaObject(options.getJSONObject("like"), ProjectForListForInvite.class);
                count += setCriteriaLike(obj, criteria);
            }
            if(options.containsKey("!=")) {
                ProjectForListForInvite obj = JSONObject.toJavaObject(options.getJSONObject("!="), ProjectForListForInvite.class);
                count += setCriteriaNotEqualTo(obj, criteria);
            }
            if(options.containsKey("!like")) {
                ProjectForListForInvite obj = JSONObject.toJavaObject(options.getJSONObject("!like"), ProjectForListForInvite.class);
                count += setCriteriaNotLike(obj, criteria);
            }
            if(options.containsKey("regexp")) {
                ProjectForListForInvite obj = JSONObject.toJavaObject(options.getJSONObject("regexp"), ProjectForListForInvite.class);
                count += setCriteriaRegexp(obj, criteria);
            }

        }

        return example;
    }

    private static int appendCriteriaOrderByItem(StringBuilder sb, String name, String value) throws Exception {
        if (value == null) {
            return 0;
        }
        if (sb.length() > 0) {
            sb.append(",");
        }
        value = value.trim();
        if ("desc/gbk".equals(value)) {
            sb.append("convert(");
            sb.append(name);
            sb.append(" using gbk) desc");
        } else if ("asc/gbk".equals(value)) {
            sb.append("convert(");
            sb.append(name);
            sb.append(" using gbk) asc");
        } else if ("desc".equals(value)) {
            sb.append(name);
            sb.append(" desc");
        } else if ("asc".equals(value) || "".equals(value)) {
            sb.append(name);
            sb.append(" asc");
        } else {
            throw new Exception("非法的order by类型:"+value);
        }
        return 1;
    }

    private static String setCriteriaOrderBy(List<Object> request, ProjectForListForInviteExample example) throws Exception {
        StringBuilder sb = new StringBuilder();
        for(Object criteriaOrderByObj: request) {
            CriteriaString criteriaOrderBy = (CriteriaString)criteriaOrderByObj;
            int subCount = 0;

            subCount += appendCriteriaOrderByItem(sb, "id", criteriaOrderBy.getId());
            subCount += appendCriteriaOrderByItem(sb, "account", criteriaOrderBy.getAccount());
            subCount += appendCriteriaOrderByItem(sb, "`password`", criteriaOrderBy.getPassword());
            subCount += appendCriteriaOrderByItem(sb, "`name`", criteriaOrderBy.getName());
            subCount += appendCriteriaOrderByItem(sb, "mobile", criteriaOrderBy.getMobile());
            subCount += appendCriteriaOrderByItem(sb, "realname", criteriaOrderBy.getRealname());
            subCount += appendCriteriaOrderByItem(sb, "create_time", criteriaOrderBy.getCreateTime());
            subCount += appendCriteriaOrderByItem(sb, "`status`", criteriaOrderBy.getStatus());
            subCount += appendCriteriaOrderByItem(sb, "last_login_time", criteriaOrderBy.getLastLoginTime());
            subCount += appendCriteriaOrderByItem(sb, "sex", criteriaOrderBy.getSex());
            subCount += appendCriteriaOrderByItem(sb, "avatar", criteriaOrderBy.getAvatar());
            subCount += appendCriteriaOrderByItem(sb, "idcard", criteriaOrderBy.getIdcard());
            subCount += appendCriteriaOrderByItem(sb, "province", criteriaOrderBy.getProvince());
            subCount += appendCriteriaOrderByItem(sb, "city", criteriaOrderBy.getCity());
            subCount += appendCriteriaOrderByItem(sb, "area", criteriaOrderBy.getArea());
            subCount += appendCriteriaOrderByItem(sb, "address", criteriaOrderBy.getAddress());
            subCount += appendCriteriaOrderByItem(sb, "email", criteriaOrderBy.getEmail());
            subCount += appendCriteriaOrderByItem(sb, "code", criteriaOrderBy.getCode());
            subCount += appendCriteriaOrderByItem(sb, "dingtalk_openid", criteriaOrderBy.getDingtalkOpenid());
            subCount += appendCriteriaOrderByItem(sb, "dingtalk_unionid", criteriaOrderBy.getDingtalkUnionid());
            subCount += appendCriteriaOrderByItem(sb, "dingtalk_userid", criteriaOrderBy.getDingtalkUserid());
            subCount += appendCriteriaOrderByItem(sb, "description", criteriaOrderBy.getDescription());
            subCount += appendCriteriaOrderByItem(sb, "member_code", criteriaOrderBy.getMemberCode());
            subCount += appendCriteriaOrderByItem(sb, "join_time", criteriaOrderBy.getJoinTime());
            subCount += appendCriteriaOrderByItem(sb, "joined", criteriaOrderBy.getJoined());
            if (subCount > 1) {
                throw new Exception("order by数组元素对象属性多于1个");
            }
        }
        if (sb.length() == 0) {
            appendCriteriaOrderByItem(sb, "1", "");
        }

        return sb.toString();
    }

    private static int setCriteriaEqualTo(ProjectForListForInvite request, Criteria criteria) {
        int count = 0;

        if (request.getId() != null) {
            count++;
            criteria.andIdEqualTo(request.getId());
        }

        if (request.getAccount() != null) {
            count++;
            criteria.andAccountEqualTo(request.getAccount());
        }

        if (request.getPassword() != null) {
            count++;
            criteria.andPasswordEqualTo(request.getPassword());
        }

        if (request.getName() != null) {
            count++;
            criteria.andNameEqualTo(request.getName());
        }

        if (request.getMobile() != null) {
            count++;
            criteria.andMobileEqualTo(request.getMobile());
        }

        if (request.getRealname() != null) {
            count++;
            criteria.andRealnameEqualTo(request.getRealname());
        }

        if (request.getCreateTime() != null) {
            count++;
            criteria.andCreateTimeEqualTo(request.getCreateTime());
        }

        if (request.getStatus() != null) {
            count++;
            criteria.andStatusEqualTo(request.getStatus());
        }

        if (request.getLastLoginTime() != null) {
            count++;
            criteria.andLastLoginTimeEqualTo(request.getLastLoginTime());
        }

        if (request.getSex() != null) {
            count++;
            criteria.andSexEqualTo(request.getSex());
        }

        if (request.getAvatar() != null) {
            count++;
            criteria.andAvatarEqualTo(request.getAvatar());
        }

        if (request.getIdcard() != null) {
            count++;
            criteria.andIdcardEqualTo(request.getIdcard());
        }

        if (request.getProvince() != null) {
            count++;
            criteria.andProvinceEqualTo(request.getProvince());
        }

        if (request.getCity() != null) {
            count++;
            criteria.andCityEqualTo(request.getCity());
        }

        if (request.getArea() != null) {
            count++;
            criteria.andAreaEqualTo(request.getArea());
        }

        if (request.getAddress() != null) {
            count++;
            criteria.andAddressEqualTo(request.getAddress());
        }

        if (request.getEmail() != null) {
            count++;
            criteria.andEmailEqualTo(request.getEmail());
        }

        if (request.getCode() != null) {
            count++;
            criteria.andCodeEqualTo(request.getCode());
        }

        if (request.getDingtalkOpenid() != null) {
            count++;
            criteria.andDingtalkOpenidEqualTo(request.getDingtalkOpenid());
        }

        if (request.getDingtalkUnionid() != null) {
            count++;
            criteria.andDingtalkUnionidEqualTo(request.getDingtalkUnionid());
        }

        if (request.getDingtalkUserid() != null) {
            count++;
            criteria.andDingtalkUseridEqualTo(request.getDingtalkUserid());
        }

        if (request.getDescription() != null) {
            count++;
            criteria.andDescriptionEqualTo(request.getDescription());
        }

        if (request.getMemberCode() != null) {
            count++;
            criteria.andMemberCodeEqualTo(request.getMemberCode());
        }

        if (request.getJoinTime() != null) {
            count++;
            criteria.andJoinTimeEqualTo(request.getJoinTime());
        }

        if (request.getJoined() != null) {
            count++;
            criteria.andJoinedEqualTo(request.getJoined());
        }

        return count;
    }

    private static int setCriteriaGreaterThan(ProjectForListForInvite request, Criteria criteria) {
        int count = 0;

        if (request.getId() != null) {
            count++;
            criteria.andIdGreaterThan(request.getId());
        }

        if (request.getAccount() != null) {
            count++;
            criteria.andAccountGreaterThan(request.getAccount());
        }

        if (request.getPassword() != null) {
            count++;
            criteria.andPasswordGreaterThan(request.getPassword());
        }

        if (request.getName() != null) {
            count++;
            criteria.andNameGreaterThan(request.getName());
        }

        if (request.getMobile() != null) {
            count++;
            criteria.andMobileGreaterThan(request.getMobile());
        }

        if (request.getRealname() != null) {
            count++;
            criteria.andRealnameGreaterThan(request.getRealname());
        }

        if (request.getCreateTime() != null) {
            count++;
            criteria.andCreateTimeGreaterThan(request.getCreateTime());
        }

        if (request.getStatus() != null) {
            count++;
            criteria.andStatusGreaterThan(request.getStatus());
        }

        if (request.getLastLoginTime() != null) {
            count++;
            criteria.andLastLoginTimeGreaterThan(request.getLastLoginTime());
        }

        if (request.getSex() != null) {
            count++;
            criteria.andSexGreaterThan(request.getSex());
        }

        if (request.getAvatar() != null) {
            count++;
            criteria.andAvatarGreaterThan(request.getAvatar());
        }

        if (request.getIdcard() != null) {
            count++;
            criteria.andIdcardGreaterThan(request.getIdcard());
        }

        if (request.getProvince() != null) {
            count++;
            criteria.andProvinceGreaterThan(request.getProvince());
        }

        if (request.getCity() != null) {
            count++;
            criteria.andCityGreaterThan(request.getCity());
        }

        if (request.getArea() != null) {
            count++;
            criteria.andAreaGreaterThan(request.getArea());
        }

        if (request.getAddress() != null) {
            count++;
            criteria.andAddressGreaterThan(request.getAddress());
        }

        if (request.getEmail() != null) {
            count++;
            criteria.andEmailGreaterThan(request.getEmail());
        }

        if (request.getCode() != null) {
            count++;
            criteria.andCodeGreaterThan(request.getCode());
        }

        if (request.getDingtalkOpenid() != null) {
            count++;
            criteria.andDingtalkOpenidGreaterThan(request.getDingtalkOpenid());
        }

        if (request.getDingtalkUnionid() != null) {
            count++;
            criteria.andDingtalkUnionidGreaterThan(request.getDingtalkUnionid());
        }

        if (request.getDingtalkUserid() != null) {
            count++;
            criteria.andDingtalkUseridGreaterThan(request.getDingtalkUserid());
        }

        if (request.getDescription() != null) {
            count++;
            criteria.andDescriptionGreaterThan(request.getDescription());
        }

        if (request.getMemberCode() != null) {
            count++;
            criteria.andMemberCodeGreaterThan(request.getMemberCode());
        }

        if (request.getJoinTime() != null) {
            count++;
            criteria.andJoinTimeGreaterThan(request.getJoinTime());
        }

        if (request.getJoined() != null) {
            count++;
            criteria.andJoinedGreaterThan(request.getJoined());
        }

        return count;
    }

    private static int setCriteriaGreaterThanOrEqualTo(ProjectForListForInvite request, Criteria criteria) {
        int count = 0;

        if (request.getId() != null) {
            count++;
            criteria.andIdGreaterThanOrEqualTo(request.getId());
        }

        if (request.getAccount() != null) {
            count++;
            criteria.andAccountGreaterThanOrEqualTo(request.getAccount());
        }

        if (request.getPassword() != null) {
            count++;
            criteria.andPasswordGreaterThanOrEqualTo(request.getPassword());
        }

        if (request.getName() != null) {
            count++;
            criteria.andNameGreaterThanOrEqualTo(request.getName());
        }

        if (request.getMobile() != null) {
            count++;
            criteria.andMobileGreaterThanOrEqualTo(request.getMobile());
        }

        if (request.getRealname() != null) {
            count++;
            criteria.andRealnameGreaterThanOrEqualTo(request.getRealname());
        }

        if (request.getCreateTime() != null) {
            count++;
            criteria.andCreateTimeGreaterThanOrEqualTo(request.getCreateTime());
        }

        if (request.getStatus() != null) {
            count++;
            criteria.andStatusGreaterThanOrEqualTo(request.getStatus());
        }

        if (request.getLastLoginTime() != null) {
            count++;
            criteria.andLastLoginTimeGreaterThanOrEqualTo(request.getLastLoginTime());
        }

        if (request.getSex() != null) {
            count++;
            criteria.andSexGreaterThanOrEqualTo(request.getSex());
        }

        if (request.getAvatar() != null) {
            count++;
            criteria.andAvatarGreaterThanOrEqualTo(request.getAvatar());
        }

        if (request.getIdcard() != null) {
            count++;
            criteria.andIdcardGreaterThanOrEqualTo(request.getIdcard());
        }

        if (request.getProvince() != null) {
            count++;
            criteria.andProvinceGreaterThanOrEqualTo(request.getProvince());
        }

        if (request.getCity() != null) {
            count++;
            criteria.andCityGreaterThanOrEqualTo(request.getCity());
        }

        if (request.getArea() != null) {
            count++;
            criteria.andAreaGreaterThanOrEqualTo(request.getArea());
        }

        if (request.getAddress() != null) {
            count++;
            criteria.andAddressGreaterThanOrEqualTo(request.getAddress());
        }

        if (request.getEmail() != null) {
            count++;
            criteria.andEmailGreaterThanOrEqualTo(request.getEmail());
        }

        if (request.getCode() != null) {
            count++;
            criteria.andCodeGreaterThanOrEqualTo(request.getCode());
        }

        if (request.getDingtalkOpenid() != null) {
            count++;
            criteria.andDingtalkOpenidGreaterThanOrEqualTo(request.getDingtalkOpenid());
        }

        if (request.getDingtalkUnionid() != null) {
            count++;
            criteria.andDingtalkUnionidGreaterThanOrEqualTo(request.getDingtalkUnionid());
        }

        if (request.getDingtalkUserid() != null) {
            count++;
            criteria.andDingtalkUseridGreaterThanOrEqualTo(request.getDingtalkUserid());
        }

        if (request.getDescription() != null) {
            count++;
            criteria.andDescriptionGreaterThanOrEqualTo(request.getDescription());
        }

        if (request.getMemberCode() != null) {
            count++;
            criteria.andMemberCodeGreaterThanOrEqualTo(request.getMemberCode());
        }

        if (request.getJoinTime() != null) {
            count++;
            criteria.andJoinTimeGreaterThanOrEqualTo(request.getJoinTime());
        }

        if (request.getJoined() != null) {
            count++;
            criteria.andJoinedGreaterThanOrEqualTo(request.getJoined());
        }

        return count;
    }

    private static int setCriteriaIsNotNull(ProjectForListForInvite request, Criteria criteria) {
        int count = 0;

        if (request.getId() != null) {
            count++;
            criteria.andIdIsNotNull();
        }

        if (request.getAccount() != null) {
            count++;
            criteria.andAccountIsNotNull();
        }

        if (request.getPassword() != null) {
            count++;
            criteria.andPasswordIsNotNull();
        }

        if (request.getName() != null) {
            count++;
            criteria.andNameIsNotNull();
        }

        if (request.getMobile() != null) {
            count++;
            criteria.andMobileIsNotNull();
        }

        if (request.getRealname() != null) {
            count++;
            criteria.andRealnameIsNotNull();
        }

        if (request.getCreateTime() != null) {
            count++;
            criteria.andCreateTimeIsNotNull();
        }

        if (request.getStatus() != null) {
            count++;
            criteria.andStatusIsNotNull();
        }

        if (request.getLastLoginTime() != null) {
            count++;
            criteria.andLastLoginTimeIsNotNull();
        }

        if (request.getSex() != null) {
            count++;
            criteria.andSexIsNotNull();
        }

        if (request.getAvatar() != null) {
            count++;
            criteria.andAvatarIsNotNull();
        }

        if (request.getIdcard() != null) {
            count++;
            criteria.andIdcardIsNotNull();
        }

        if (request.getProvince() != null) {
            count++;
            criteria.andProvinceIsNotNull();
        }

        if (request.getCity() != null) {
            count++;
            criteria.andCityIsNotNull();
        }

        if (request.getArea() != null) {
            count++;
            criteria.andAreaIsNotNull();
        }

        if (request.getAddress() != null) {
            count++;
            criteria.andAddressIsNotNull();
        }

        if (request.getEmail() != null) {
            count++;
            criteria.andEmailIsNotNull();
        }

        if (request.getCode() != null) {
            count++;
            criteria.andCodeIsNotNull();
        }

        if (request.getDingtalkOpenid() != null) {
            count++;
            criteria.andDingtalkOpenidIsNotNull();
        }

        if (request.getDingtalkUnionid() != null) {
            count++;
            criteria.andDingtalkUnionidIsNotNull();
        }

        if (request.getDingtalkUserid() != null) {
            count++;
            criteria.andDingtalkUseridIsNotNull();
        }

        if (request.getDescription() != null) {
            count++;
            criteria.andDescriptionIsNotNull();
        }

        if (request.getMemberCode() != null) {
            count++;
            criteria.andMemberCodeIsNotNull();
        }

        if (request.getJoinTime() != null) {
            count++;
            criteria.andJoinTimeIsNotNull();
        }

        if (request.getJoined() != null) {
            count++;
            criteria.andJoinedIsNotNull();
        }

        return count;
    }

    private static int setCriteriaIsNull(ProjectForListForInvite request, Criteria criteria) {
        int count = 0;

        if (request.getId() != null) {
            count++;
            criteria.andIdIsNull();
        }

        if (request.getAccount() != null) {
            count++;
            criteria.andAccountIsNull();
        }

        if (request.getPassword() != null) {
            count++;
            criteria.andPasswordIsNull();
        }

        if (request.getName() != null) {
            count++;
            criteria.andNameIsNull();
        }

        if (request.getMobile() != null) {
            count++;
            criteria.andMobileIsNull();
        }

        if (request.getRealname() != null) {
            count++;
            criteria.andRealnameIsNull();
        }

        if (request.getCreateTime() != null) {
            count++;
            criteria.andCreateTimeIsNull();
        }

        if (request.getStatus() != null) {
            count++;
            criteria.andStatusIsNull();
        }

        if (request.getLastLoginTime() != null) {
            count++;
            criteria.andLastLoginTimeIsNull();
        }

        if (request.getSex() != null) {
            count++;
            criteria.andSexIsNull();
        }

        if (request.getAvatar() != null) {
            count++;
            criteria.andAvatarIsNull();
        }

        if (request.getIdcard() != null) {
            count++;
            criteria.andIdcardIsNull();
        }

        if (request.getProvince() != null) {
            count++;
            criteria.andProvinceIsNull();
        }

        if (request.getCity() != null) {
            count++;
            criteria.andCityIsNull();
        }

        if (request.getArea() != null) {
            count++;
            criteria.andAreaIsNull();
        }

        if (request.getAddress() != null) {
            count++;
            criteria.andAddressIsNull();
        }

        if (request.getEmail() != null) {
            count++;
            criteria.andEmailIsNull();
        }

        if (request.getCode() != null) {
            count++;
            criteria.andCodeIsNull();
        }

        if (request.getDingtalkOpenid() != null) {
            count++;
            criteria.andDingtalkOpenidIsNull();
        }

        if (request.getDingtalkUnionid() != null) {
            count++;
            criteria.andDingtalkUnionidIsNull();
        }

        if (request.getDingtalkUserid() != null) {
            count++;
            criteria.andDingtalkUseridIsNull();
        }

        if (request.getDescription() != null) {
            count++;
            criteria.andDescriptionIsNull();
        }

        if (request.getMemberCode() != null) {
            count++;
            criteria.andMemberCodeIsNull();
        }

        if (request.getJoinTime() != null) {
            count++;
            criteria.andJoinTimeIsNull();
        }

        if (request.getJoined() != null) {
            count++;
            criteria.andJoinedIsNull();
        }

        return count;
    }

    private static int setCriteriaLessThan(ProjectForListForInvite request, Criteria criteria) {
        int count = 0;

        if (request.getId() != null) {
            count++;
            criteria.andIdLessThan(request.getId());
        }

        if (request.getAccount() != null) {
            count++;
            criteria.andAccountLessThan(request.getAccount());
        }

        if (request.getPassword() != null) {
            count++;
            criteria.andPasswordLessThan(request.getPassword());
        }

        if (request.getName() != null) {
            count++;
            criteria.andNameLessThan(request.getName());
        }

        if (request.getMobile() != null) {
            count++;
            criteria.andMobileLessThan(request.getMobile());
        }

        if (request.getRealname() != null) {
            count++;
            criteria.andRealnameLessThan(request.getRealname());
        }

        if (request.getCreateTime() != null) {
            count++;
            criteria.andCreateTimeLessThan(request.getCreateTime());
        }

        if (request.getStatus() != null) {
            count++;
            criteria.andStatusLessThan(request.getStatus());
        }

        if (request.getLastLoginTime() != null) {
            count++;
            criteria.andLastLoginTimeLessThan(request.getLastLoginTime());
        }

        if (request.getSex() != null) {
            count++;
            criteria.andSexLessThan(request.getSex());
        }

        if (request.getAvatar() != null) {
            count++;
            criteria.andAvatarLessThan(request.getAvatar());
        }

        if (request.getIdcard() != null) {
            count++;
            criteria.andIdcardLessThan(request.getIdcard());
        }

        if (request.getProvince() != null) {
            count++;
            criteria.andProvinceLessThan(request.getProvince());
        }

        if (request.getCity() != null) {
            count++;
            criteria.andCityLessThan(request.getCity());
        }

        if (request.getArea() != null) {
            count++;
            criteria.andAreaLessThan(request.getArea());
        }

        if (request.getAddress() != null) {
            count++;
            criteria.andAddressLessThan(request.getAddress());
        }

        if (request.getEmail() != null) {
            count++;
            criteria.andEmailLessThan(request.getEmail());
        }

        if (request.getCode() != null) {
            count++;
            criteria.andCodeLessThan(request.getCode());
        }

        if (request.getDingtalkOpenid() != null) {
            count++;
            criteria.andDingtalkOpenidLessThan(request.getDingtalkOpenid());
        }

        if (request.getDingtalkUnionid() != null) {
            count++;
            criteria.andDingtalkUnionidLessThan(request.getDingtalkUnionid());
        }

        if (request.getDingtalkUserid() != null) {
            count++;
            criteria.andDingtalkUseridLessThan(request.getDingtalkUserid());
        }

        if (request.getDescription() != null) {
            count++;
            criteria.andDescriptionLessThan(request.getDescription());
        }

        if (request.getMemberCode() != null) {
            count++;
            criteria.andMemberCodeLessThan(request.getMemberCode());
        }

        if (request.getJoinTime() != null) {
            count++;
            criteria.andJoinTimeLessThan(request.getJoinTime());
        }

        if (request.getJoined() != null) {
            count++;
            criteria.andJoinedLessThan(request.getJoined());
        }

        return count;
    }

    private static int setCriteriaLessThanOrEqualTo(ProjectForListForInvite request, Criteria criteria) {
        int count = 0;

        if (request.getId() != null) {
            count++;
            criteria.andIdLessThanOrEqualTo(request.getId());
        }

        if (request.getAccount() != null) {
            count++;
            criteria.andAccountLessThanOrEqualTo(request.getAccount());
        }

        if (request.getPassword() != null) {
            count++;
            criteria.andPasswordLessThanOrEqualTo(request.getPassword());
        }

        if (request.getName() != null) {
            count++;
            criteria.andNameLessThanOrEqualTo(request.getName());
        }

        if (request.getMobile() != null) {
            count++;
            criteria.andMobileLessThanOrEqualTo(request.getMobile());
        }

        if (request.getRealname() != null) {
            count++;
            criteria.andRealnameLessThanOrEqualTo(request.getRealname());
        }

        if (request.getCreateTime() != null) {
            count++;
            criteria.andCreateTimeLessThanOrEqualTo(request.getCreateTime());
        }

        if (request.getStatus() != null) {
            count++;
            criteria.andStatusLessThanOrEqualTo(request.getStatus());
        }

        if (request.getLastLoginTime() != null) {
            count++;
            criteria.andLastLoginTimeLessThanOrEqualTo(request.getLastLoginTime());
        }

        if (request.getSex() != null) {
            count++;
            criteria.andSexLessThanOrEqualTo(request.getSex());
        }

        if (request.getAvatar() != null) {
            count++;
            criteria.andAvatarLessThanOrEqualTo(request.getAvatar());
        }

        if (request.getIdcard() != null) {
            count++;
            criteria.andIdcardLessThanOrEqualTo(request.getIdcard());
        }

        if (request.getProvince() != null) {
            count++;
            criteria.andProvinceLessThanOrEqualTo(request.getProvince());
        }

        if (request.getCity() != null) {
            count++;
            criteria.andCityLessThanOrEqualTo(request.getCity());
        }

        if (request.getArea() != null) {
            count++;
            criteria.andAreaLessThanOrEqualTo(request.getArea());
        }

        if (request.getAddress() != null) {
            count++;
            criteria.andAddressLessThanOrEqualTo(request.getAddress());
        }

        if (request.getEmail() != null) {
            count++;
            criteria.andEmailLessThanOrEqualTo(request.getEmail());
        }

        if (request.getCode() != null) {
            count++;
            criteria.andCodeLessThanOrEqualTo(request.getCode());
        }

        if (request.getDingtalkOpenid() != null) {
            count++;
            criteria.andDingtalkOpenidLessThanOrEqualTo(request.getDingtalkOpenid());
        }

        if (request.getDingtalkUnionid() != null) {
            count++;
            criteria.andDingtalkUnionidLessThanOrEqualTo(request.getDingtalkUnionid());
        }

        if (request.getDingtalkUserid() != null) {
            count++;
            criteria.andDingtalkUseridLessThanOrEqualTo(request.getDingtalkUserid());
        }

        if (request.getDescription() != null) {
            count++;
            criteria.andDescriptionLessThanOrEqualTo(request.getDescription());
        }

        if (request.getMemberCode() != null) {
            count++;
            criteria.andMemberCodeLessThanOrEqualTo(request.getMemberCode());
        }

        if (request.getJoinTime() != null) {
            count++;
            criteria.andJoinTimeLessThanOrEqualTo(request.getJoinTime());
        }

        if (request.getJoined() != null) {
            count++;
            criteria.andJoinedLessThanOrEqualTo(request.getJoined());
        }

        return count;
    }

    private static int setCriteriaLike(ProjectForListForInvite request, Criteria criteria) {
        int count = 0;

        if (request.getAccount() != null) {
            count++;
            criteria.andAccountLike(request.getAccount());
        }

        if (request.getPassword() != null) {
            count++;
            criteria.andPasswordLike(request.getPassword());
        }

        if (request.getName() != null) {
            count++;
            criteria.andNameLike(request.getName());
        }

        if (request.getMobile() != null) {
            count++;
            criteria.andMobileLike(request.getMobile());
        }

        if (request.getRealname() != null) {
            count++;
            criteria.andRealnameLike(request.getRealname());
        }

        if (request.getCreateTime() != null) {
            count++;
            criteria.andCreateTimeLike(request.getCreateTime());
        }

        if (request.getLastLoginTime() != null) {
            count++;
            criteria.andLastLoginTimeLike(request.getLastLoginTime());
        }

        if (request.getSex() != null) {
            count++;
            criteria.andSexLike(request.getSex());
        }

        if (request.getAvatar() != null) {
            count++;
            criteria.andAvatarLike(request.getAvatar());
        }

        if (request.getIdcard() != null) {
            count++;
            criteria.andIdcardLike(request.getIdcard());
        }

        if (request.getAddress() != null) {
            count++;
            criteria.andAddressLike(request.getAddress());
        }

        if (request.getEmail() != null) {
            count++;
            criteria.andEmailLike(request.getEmail());
        }

        if (request.getCode() != null) {
            count++;
            criteria.andCodeLike(request.getCode());
        }

        if (request.getDingtalkOpenid() != null) {
            count++;
            criteria.andDingtalkOpenidLike(request.getDingtalkOpenid());
        }

        if (request.getDingtalkUnionid() != null) {
            count++;
            criteria.andDingtalkUnionidLike(request.getDingtalkUnionid());
        }

        if (request.getDingtalkUserid() != null) {
            count++;
            criteria.andDingtalkUseridLike(request.getDingtalkUserid());
        }

        if (request.getDescription() != null) {
            count++;
            criteria.andDescriptionLike(request.getDescription());
        }

        if (request.getMemberCode() != null) {
            count++;
            criteria.andMemberCodeLike(request.getMemberCode());
        }

        if (request.getJoinTime() != null) {
            count++;
            criteria.andJoinTimeLike(request.getJoinTime());
        }

        return count;
    }

    private static int setCriteriaNotEqualTo(ProjectForListForInvite request, Criteria criteria) {
        int count = 0;

        if (request.getId() != null) {
            count++;
            criteria.andIdNotEqualTo(request.getId());
        }

        if (request.getAccount() != null) {
            count++;
            criteria.andAccountNotEqualTo(request.getAccount());
        }

        if (request.getPassword() != null) {
            count++;
            criteria.andPasswordNotEqualTo(request.getPassword());
        }

        if (request.getName() != null) {
            count++;
            criteria.andNameNotEqualTo(request.getName());
        }

        if (request.getMobile() != null) {
            count++;
            criteria.andMobileNotEqualTo(request.getMobile());
        }

        if (request.getRealname() != null) {
            count++;
            criteria.andRealnameNotEqualTo(request.getRealname());
        }

        if (request.getCreateTime() != null) {
            count++;
            criteria.andCreateTimeNotEqualTo(request.getCreateTime());
        }

        if (request.getStatus() != null) {
            count++;
            criteria.andStatusNotEqualTo(request.getStatus());
        }

        if (request.getLastLoginTime() != null) {
            count++;
            criteria.andLastLoginTimeNotEqualTo(request.getLastLoginTime());
        }

        if (request.getSex() != null) {
            count++;
            criteria.andSexNotEqualTo(request.getSex());
        }

        if (request.getAvatar() != null) {
            count++;
            criteria.andAvatarNotEqualTo(request.getAvatar());
        }

        if (request.getIdcard() != null) {
            count++;
            criteria.andIdcardNotEqualTo(request.getIdcard());
        }

        if (request.getProvince() != null) {
            count++;
            criteria.andProvinceNotEqualTo(request.getProvince());
        }

        if (request.getCity() != null) {
            count++;
            criteria.andCityNotEqualTo(request.getCity());
        }

        if (request.getArea() != null) {
            count++;
            criteria.andAreaNotEqualTo(request.getArea());
        }

        if (request.getAddress() != null) {
            count++;
            criteria.andAddressNotEqualTo(request.getAddress());
        }

        if (request.getEmail() != null) {
            count++;
            criteria.andEmailNotEqualTo(request.getEmail());
        }

        if (request.getCode() != null) {
            count++;
            criteria.andCodeNotEqualTo(request.getCode());
        }

        if (request.getDingtalkOpenid() != null) {
            count++;
            criteria.andDingtalkOpenidNotEqualTo(request.getDingtalkOpenid());
        }

        if (request.getDingtalkUnionid() != null) {
            count++;
            criteria.andDingtalkUnionidNotEqualTo(request.getDingtalkUnionid());
        }

        if (request.getDingtalkUserid() != null) {
            count++;
            criteria.andDingtalkUseridNotEqualTo(request.getDingtalkUserid());
        }

        if (request.getDescription() != null) {
            count++;
            criteria.andDescriptionNotEqualTo(request.getDescription());
        }

        if (request.getMemberCode() != null) {
            count++;
            criteria.andMemberCodeNotEqualTo(request.getMemberCode());
        }

        if (request.getJoinTime() != null) {
            count++;
            criteria.andJoinTimeNotEqualTo(request.getJoinTime());
        }

        if (request.getJoined() != null) {
            count++;
            criteria.andJoinedNotEqualTo(request.getJoined());
        }

        return count;
    }

    private static int setCriteriaNotLike(ProjectForListForInvite request, Criteria criteria) {
        int count = 0;

        if (request.getAccount() != null) {
            count++;
            criteria.andAccountNotLike(request.getAccount());
        }

        if (request.getPassword() != null) {
            count++;
            criteria.andPasswordNotLike(request.getPassword());
        }

        if (request.getName() != null) {
            count++;
            criteria.andNameNotLike(request.getName());
        }

        if (request.getMobile() != null) {
            count++;
            criteria.andMobileNotLike(request.getMobile());
        }

        if (request.getRealname() != null) {
            count++;
            criteria.andRealnameNotLike(request.getRealname());
        }

        if (request.getCreateTime() != null) {
            count++;
            criteria.andCreateTimeNotLike(request.getCreateTime());
        }

        if (request.getLastLoginTime() != null) {
            count++;
            criteria.andLastLoginTimeNotLike(request.getLastLoginTime());
        }

        if (request.getSex() != null) {
            count++;
            criteria.andSexNotLike(request.getSex());
        }

        if (request.getAvatar() != null) {
            count++;
            criteria.andAvatarNotLike(request.getAvatar());
        }

        if (request.getIdcard() != null) {
            count++;
            criteria.andIdcardNotLike(request.getIdcard());
        }

        if (request.getAddress() != null) {
            count++;
            criteria.andAddressNotLike(request.getAddress());
        }

        if (request.getEmail() != null) {
            count++;
            criteria.andEmailNotLike(request.getEmail());
        }

        if (request.getCode() != null) {
            count++;
            criteria.andCodeNotLike(request.getCode());
        }

        if (request.getDingtalkOpenid() != null) {
            count++;
            criteria.andDingtalkOpenidNotLike(request.getDingtalkOpenid());
        }

        if (request.getDingtalkUnionid() != null) {
            count++;
            criteria.andDingtalkUnionidNotLike(request.getDingtalkUnionid());
        }

        if (request.getDingtalkUserid() != null) {
            count++;
            criteria.andDingtalkUseridNotLike(request.getDingtalkUserid());
        }

        if (request.getDescription() != null) {
            count++;
            criteria.andDescriptionNotLike(request.getDescription());
        }

        if (request.getMemberCode() != null) {
            count++;
            criteria.andMemberCodeNotLike(request.getMemberCode());
        }

        if (request.getJoinTime() != null) {
            count++;
            criteria.andJoinTimeNotLike(request.getJoinTime());
        }

        return count;
    }

    private static int setCriteriaRegexp(ProjectForListForInvite request, Criteria criteria) {
        int count = 0;

        if (request.getAccount() != null) {
            count++;
            criteria.andAccountRegexp(request.getAccount());
        }

        if (request.getPassword() != null) {
            count++;
            criteria.andPasswordRegexp(request.getPassword());
        }

        if (request.getName() != null) {
            count++;
            criteria.andNameRegexp(request.getName());
        }

        if (request.getMobile() != null) {
            count++;
            criteria.andMobileRegexp(request.getMobile());
        }

        if (request.getRealname() != null) {
            count++;
            criteria.andRealnameRegexp(request.getRealname());
        }

        if (request.getCreateTime() != null) {
            count++;
            criteria.andCreateTimeRegexp(request.getCreateTime());
        }

        if (request.getLastLoginTime() != null) {
            count++;
            criteria.andLastLoginTimeRegexp(request.getLastLoginTime());
        }

        if (request.getSex() != null) {
            count++;
            criteria.andSexRegexp(request.getSex());
        }

        if (request.getAvatar() != null) {
            count++;
            criteria.andAvatarRegexp(request.getAvatar());
        }

        if (request.getIdcard() != null) {
            count++;
            criteria.andIdcardRegexp(request.getIdcard());
        }

        if (request.getAddress() != null) {
            count++;
            criteria.andAddressRegexp(request.getAddress());
        }

        if (request.getEmail() != null) {
            count++;
            criteria.andEmailRegexp(request.getEmail());
        }

        if (request.getCode() != null) {
            count++;
            criteria.andCodeRegexp(request.getCode());
        }

        if (request.getDingtalkOpenid() != null) {
            count++;
            criteria.andDingtalkOpenidRegexp(request.getDingtalkOpenid());
        }

        if (request.getDingtalkUnionid() != null) {
            count++;
            criteria.andDingtalkUnionidRegexp(request.getDingtalkUnionid());
        }

        if (request.getDingtalkUserid() != null) {
            count++;
            criteria.andDingtalkUseridRegexp(request.getDingtalkUserid());
        }

        if (request.getDescription() != null) {
            count++;
            criteria.andDescriptionRegexp(request.getDescription());
        }

        if (request.getMemberCode() != null) {
            count++;
            criteria.andMemberCodeRegexp(request.getMemberCode());
        }

        if (request.getJoinTime() != null) {
            count++;
            criteria.andJoinTimeRegexp(request.getJoinTime());
        }

        return count;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andAccountIsNull() {
            addCriterion("account is null");
            return (Criteria) this;
        }

        public Criteria andAccountIsNotNull() {
            addCriterion("account is not null");
            return (Criteria) this;
        }

        public Criteria andAccountEqualTo(String value) {
            addCriterion("account =", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountNotEqualTo(String value) {
            addCriterion("account <>", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountGreaterThan(String value) {
            addCriterion("account >", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountGreaterThanOrEqualTo(String value) {
            addCriterion("account >=", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountLessThan(String value) {
            addCriterion("account <", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountLessThanOrEqualTo(String value) {
            addCriterion("account <=", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountRegexp(String value) {
            addCriterion("account regexp", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountLike(String value) {
            addCriterion("account like", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountNotLike(String value) {
            addCriterion("account not like", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountIn(List<String> values) {
            addCriterion("account in", values, "account");
            return (Criteria) this;
        }

        public Criteria andAccountNotIn(List<String> values) {
            addCriterion("account not in", values, "account");
            return (Criteria) this;
        }

        public Criteria andAccountBetween(String value1, String value2) {
            addCriterion("account between", value1, value2, "account");
            return (Criteria) this;
        }

        public Criteria andAccountNotBetween(String value1, String value2) {
            addCriterion("account not between", value1, value2, "account");
            return (Criteria) this;
        }

        public Criteria andPasswordIsNull() {
            addCriterion("`password` is null");
            return (Criteria) this;
        }

        public Criteria andPasswordIsNotNull() {
            addCriterion("`password` is not null");
            return (Criteria) this;
        }

        public Criteria andPasswordEqualTo(String value) {
            addCriterion("`password` =", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotEqualTo(String value) {
            addCriterion("`password` <>", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThan(String value) {
            addCriterion("`password` >", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThanOrEqualTo(String value) {
            addCriterion("`password` >=", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLessThan(String value) {
            addCriterion("`password` <", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLessThanOrEqualTo(String value) {
            addCriterion("`password` <=", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordRegexp(String value) {
            addCriterion("`password` regexp", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLike(String value) {
            addCriterion("`password` like", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotLike(String value) {
            addCriterion("`password` not like", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordIn(List<String> values) {
            addCriterion("`password` in", values, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotIn(List<String> values) {
            addCriterion("`password` not in", values, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordBetween(String value1, String value2) {
            addCriterion("`password` between", value1, value2, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotBetween(String value1, String value2) {
            addCriterion("`password` not between", value1, value2, "password");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("`name` is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("`name` is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("`name` =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("`name` <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("`name` >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("`name` >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("`name` <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("`name` <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameRegexp(String value) {
            addCriterion("`name` regexp", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("`name` like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("`name` not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("`name` in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("`name` not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("`name` between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("`name` not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andMobileIsNull() {
            addCriterion("mobile is null");
            return (Criteria) this;
        }

        public Criteria andMobileIsNotNull() {
            addCriterion("mobile is not null");
            return (Criteria) this;
        }

        public Criteria andMobileEqualTo(String value) {
            addCriterion("mobile =", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotEqualTo(String value) {
            addCriterion("mobile <>", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileGreaterThan(String value) {
            addCriterion("mobile >", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileGreaterThanOrEqualTo(String value) {
            addCriterion("mobile >=", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLessThan(String value) {
            addCriterion("mobile <", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLessThanOrEqualTo(String value) {
            addCriterion("mobile <=", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileRegexp(String value) {
            addCriterion("mobile regexp", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLike(String value) {
            addCriterion("mobile like", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotLike(String value) {
            addCriterion("mobile not like", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileIn(List<String> values) {
            addCriterion("mobile in", values, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotIn(List<String> values) {
            addCriterion("mobile not in", values, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileBetween(String value1, String value2) {
            addCriterion("mobile between", value1, value2, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotBetween(String value1, String value2) {
            addCriterion("mobile not between", value1, value2, "mobile");
            return (Criteria) this;
        }

        public Criteria andRealnameIsNull() {
            addCriterion("realname is null");
            return (Criteria) this;
        }

        public Criteria andRealnameIsNotNull() {
            addCriterion("realname is not null");
            return (Criteria) this;
        }

        public Criteria andRealnameEqualTo(String value) {
            addCriterion("realname =", value, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameNotEqualTo(String value) {
            addCriterion("realname <>", value, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameGreaterThan(String value) {
            addCriterion("realname >", value, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameGreaterThanOrEqualTo(String value) {
            addCriterion("realname >=", value, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameLessThan(String value) {
            addCriterion("realname <", value, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameLessThanOrEqualTo(String value) {
            addCriterion("realname <=", value, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameRegexp(String value) {
            addCriterion("realname regexp", value, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameLike(String value) {
            addCriterion("realname like", value, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameNotLike(String value) {
            addCriterion("realname not like", value, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameIn(List<String> values) {
            addCriterion("realname in", values, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameNotIn(List<String> values) {
            addCriterion("realname not in", values, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameBetween(String value1, String value2) {
            addCriterion("realname between", value1, value2, "realname");
            return (Criteria) this;
        }

        public Criteria andRealnameNotBetween(String value1, String value2) {
            addCriterion("realname not between", value1, value2, "realname");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(String value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(String value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(String value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(String value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(String value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(String value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeRegexp(String value) {
            addCriterion("create_time regexp", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLike(String value) {
            addCriterion("create_time like", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotLike(String value) {
            addCriterion("create_time not like", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<String> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<String> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(String value1, String value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(String value1, String value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("`status` is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("`status` is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Boolean value) {
            addCriterion("`status` =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Boolean value) {
            addCriterion("`status` <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Boolean value) {
            addCriterion("`status` >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Boolean value) {
            addCriterion("`status` >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Boolean value) {
            addCriterion("`status` <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Boolean value) {
            addCriterion("`status` <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Boolean> values) {
            addCriterion("`status` in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Boolean> values) {
            addCriterion("`status` not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Boolean value1, Boolean value2) {
            addCriterion("`status` between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Boolean value1, Boolean value2) {
            addCriterion("`status` not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeIsNull() {
            addCriterion("last_login_time is null");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeIsNotNull() {
            addCriterion("last_login_time is not null");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeEqualTo(String value) {
            addCriterion("last_login_time =", value, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeNotEqualTo(String value) {
            addCriterion("last_login_time <>", value, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeGreaterThan(String value) {
            addCriterion("last_login_time >", value, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeGreaterThanOrEqualTo(String value) {
            addCriterion("last_login_time >=", value, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeLessThan(String value) {
            addCriterion("last_login_time <", value, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeLessThanOrEqualTo(String value) {
            addCriterion("last_login_time <=", value, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeRegexp(String value) {
            addCriterion("last_login_time regexp", value, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeLike(String value) {
            addCriterion("last_login_time like", value, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeNotLike(String value) {
            addCriterion("last_login_time not like", value, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeIn(List<String> values) {
            addCriterion("last_login_time in", values, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeNotIn(List<String> values) {
            addCriterion("last_login_time not in", values, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeBetween(String value1, String value2) {
            addCriterion("last_login_time between", value1, value2, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andLastLoginTimeNotBetween(String value1, String value2) {
            addCriterion("last_login_time not between", value1, value2, "lastLoginTime");
            return (Criteria) this;
        }

        public Criteria andSexIsNull() {
            addCriterion("sex is null");
            return (Criteria) this;
        }

        public Criteria andSexIsNotNull() {
            addCriterion("sex is not null");
            return (Criteria) this;
        }

        public Criteria andSexEqualTo(String value) {
            addCriterion("sex =", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexNotEqualTo(String value) {
            addCriterion("sex <>", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexGreaterThan(String value) {
            addCriterion("sex >", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexGreaterThanOrEqualTo(String value) {
            addCriterion("sex >=", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexLessThan(String value) {
            addCriterion("sex <", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexLessThanOrEqualTo(String value) {
            addCriterion("sex <=", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexRegexp(String value) {
            addCriterion("sex regexp", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexLike(String value) {
            addCriterion("sex like", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexNotLike(String value) {
            addCriterion("sex not like", value, "sex");
            return (Criteria) this;
        }

        public Criteria andSexIn(List<String> values) {
            addCriterion("sex in", values, "sex");
            return (Criteria) this;
        }

        public Criteria andSexNotIn(List<String> values) {
            addCriterion("sex not in", values, "sex");
            return (Criteria) this;
        }

        public Criteria andSexBetween(String value1, String value2) {
            addCriterion("sex between", value1, value2, "sex");
            return (Criteria) this;
        }

        public Criteria andSexNotBetween(String value1, String value2) {
            addCriterion("sex not between", value1, value2, "sex");
            return (Criteria) this;
        }

        public Criteria andAvatarIsNull() {
            addCriterion("avatar is null");
            return (Criteria) this;
        }

        public Criteria andAvatarIsNotNull() {
            addCriterion("avatar is not null");
            return (Criteria) this;
        }

        public Criteria andAvatarEqualTo(String value) {
            addCriterion("avatar =", value, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarNotEqualTo(String value) {
            addCriterion("avatar <>", value, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarGreaterThan(String value) {
            addCriterion("avatar >", value, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarGreaterThanOrEqualTo(String value) {
            addCriterion("avatar >=", value, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarLessThan(String value) {
            addCriterion("avatar <", value, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarLessThanOrEqualTo(String value) {
            addCriterion("avatar <=", value, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarRegexp(String value) {
            addCriterion("avatar regexp", value, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarLike(String value) {
            addCriterion("avatar like", value, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarNotLike(String value) {
            addCriterion("avatar not like", value, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarIn(List<String> values) {
            addCriterion("avatar in", values, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarNotIn(List<String> values) {
            addCriterion("avatar not in", values, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarBetween(String value1, String value2) {
            addCriterion("avatar between", value1, value2, "avatar");
            return (Criteria) this;
        }

        public Criteria andAvatarNotBetween(String value1, String value2) {
            addCriterion("avatar not between", value1, value2, "avatar");
            return (Criteria) this;
        }

        public Criteria andIdcardIsNull() {
            addCriterion("idcard is null");
            return (Criteria) this;
        }

        public Criteria andIdcardIsNotNull() {
            addCriterion("idcard is not null");
            return (Criteria) this;
        }

        public Criteria andIdcardEqualTo(String value) {
            addCriterion("idcard =", value, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardNotEqualTo(String value) {
            addCriterion("idcard <>", value, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardGreaterThan(String value) {
            addCriterion("idcard >", value, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardGreaterThanOrEqualTo(String value) {
            addCriterion("idcard >=", value, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardLessThan(String value) {
            addCriterion("idcard <", value, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardLessThanOrEqualTo(String value) {
            addCriterion("idcard <=", value, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardRegexp(String value) {
            addCriterion("idcard regexp", value, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardLike(String value) {
            addCriterion("idcard like", value, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardNotLike(String value) {
            addCriterion("idcard not like", value, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardIn(List<String> values) {
            addCriterion("idcard in", values, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardNotIn(List<String> values) {
            addCriterion("idcard not in", values, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardBetween(String value1, String value2) {
            addCriterion("idcard between", value1, value2, "idcard");
            return (Criteria) this;
        }

        public Criteria andIdcardNotBetween(String value1, String value2) {
            addCriterion("idcard not between", value1, value2, "idcard");
            return (Criteria) this;
        }

        public Criteria andProvinceIsNull() {
            addCriterion("province is null");
            return (Criteria) this;
        }

        public Criteria andProvinceIsNotNull() {
            addCriterion("province is not null");
            return (Criteria) this;
        }

        public Criteria andProvinceEqualTo(Integer value) {
            addCriterion("province =", value, "province");
            return (Criteria) this;
        }

        public Criteria andProvinceNotEqualTo(Integer value) {
            addCriterion("province <>", value, "province");
            return (Criteria) this;
        }

        public Criteria andProvinceGreaterThan(Integer value) {
            addCriterion("province >", value, "province");
            return (Criteria) this;
        }

        public Criteria andProvinceGreaterThanOrEqualTo(Integer value) {
            addCriterion("province >=", value, "province");
            return (Criteria) this;
        }

        public Criteria andProvinceLessThan(Integer value) {
            addCriterion("province <", value, "province");
            return (Criteria) this;
        }

        public Criteria andProvinceLessThanOrEqualTo(Integer value) {
            addCriterion("province <=", value, "province");
            return (Criteria) this;
        }

        public Criteria andProvinceIn(List<Integer> values) {
            addCriterion("province in", values, "province");
            return (Criteria) this;
        }

        public Criteria andProvinceNotIn(List<Integer> values) {
            addCriterion("province not in", values, "province");
            return (Criteria) this;
        }

        public Criteria andProvinceBetween(Integer value1, Integer value2) {
            addCriterion("province between", value1, value2, "province");
            return (Criteria) this;
        }

        public Criteria andProvinceNotBetween(Integer value1, Integer value2) {
            addCriterion("province not between", value1, value2, "province");
            return (Criteria) this;
        }

        public Criteria andCityIsNull() {
            addCriterion("city is null");
            return (Criteria) this;
        }

        public Criteria andCityIsNotNull() {
            addCriterion("city is not null");
            return (Criteria) this;
        }

        public Criteria andCityEqualTo(Integer value) {
            addCriterion("city =", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityNotEqualTo(Integer value) {
            addCriterion("city <>", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityGreaterThan(Integer value) {
            addCriterion("city >", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityGreaterThanOrEqualTo(Integer value) {
            addCriterion("city >=", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityLessThan(Integer value) {
            addCriterion("city <", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityLessThanOrEqualTo(Integer value) {
            addCriterion("city <=", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityIn(List<Integer> values) {
            addCriterion("city in", values, "city");
            return (Criteria) this;
        }

        public Criteria andCityNotIn(List<Integer> values) {
            addCriterion("city not in", values, "city");
            return (Criteria) this;
        }

        public Criteria andCityBetween(Integer value1, Integer value2) {
            addCriterion("city between", value1, value2, "city");
            return (Criteria) this;
        }

        public Criteria andCityNotBetween(Integer value1, Integer value2) {
            addCriterion("city not between", value1, value2, "city");
            return (Criteria) this;
        }

        public Criteria andAreaIsNull() {
            addCriterion("area is null");
            return (Criteria) this;
        }

        public Criteria andAreaIsNotNull() {
            addCriterion("area is not null");
            return (Criteria) this;
        }

        public Criteria andAreaEqualTo(Integer value) {
            addCriterion("area =", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaNotEqualTo(Integer value) {
            addCriterion("area <>", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaGreaterThan(Integer value) {
            addCriterion("area >", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaGreaterThanOrEqualTo(Integer value) {
            addCriterion("area >=", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaLessThan(Integer value) {
            addCriterion("area <", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaLessThanOrEqualTo(Integer value) {
            addCriterion("area <=", value, "area");
            return (Criteria) this;
        }

        public Criteria andAreaIn(List<Integer> values) {
            addCriterion("area in", values, "area");
            return (Criteria) this;
        }

        public Criteria andAreaNotIn(List<Integer> values) {
            addCriterion("area not in", values, "area");
            return (Criteria) this;
        }

        public Criteria andAreaBetween(Integer value1, Integer value2) {
            addCriterion("area between", value1, value2, "area");
            return (Criteria) this;
        }

        public Criteria andAreaNotBetween(Integer value1, Integer value2) {
            addCriterion("area not between", value1, value2, "area");
            return (Criteria) this;
        }

        public Criteria andAddressIsNull() {
            addCriterion("address is null");
            return (Criteria) this;
        }

        public Criteria andAddressIsNotNull() {
            addCriterion("address is not null");
            return (Criteria) this;
        }

        public Criteria andAddressEqualTo(String value) {
            addCriterion("address =", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotEqualTo(String value) {
            addCriterion("address <>", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressGreaterThan(String value) {
            addCriterion("address >", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressGreaterThanOrEqualTo(String value) {
            addCriterion("address >=", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressLessThan(String value) {
            addCriterion("address <", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressLessThanOrEqualTo(String value) {
            addCriterion("address <=", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressRegexp(String value) {
            addCriterion("address regexp", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressLike(String value) {
            addCriterion("address like", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotLike(String value) {
            addCriterion("address not like", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressIn(List<String> values) {
            addCriterion("address in", values, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotIn(List<String> values) {
            addCriterion("address not in", values, "address");
            return (Criteria) this;
        }

        public Criteria andAddressBetween(String value1, String value2) {
            addCriterion("address between", value1, value2, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotBetween(String value1, String value2) {
            addCriterion("address not between", value1, value2, "address");
            return (Criteria) this;
        }

        public Criteria andEmailIsNull() {
            addCriterion("email is null");
            return (Criteria) this;
        }

        public Criteria andEmailIsNotNull() {
            addCriterion("email is not null");
            return (Criteria) this;
        }

        public Criteria andEmailEqualTo(String value) {
            addCriterion("email =", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotEqualTo(String value) {
            addCriterion("email <>", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailGreaterThan(String value) {
            addCriterion("email >", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailGreaterThanOrEqualTo(String value) {
            addCriterion("email >=", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLessThan(String value) {
            addCriterion("email <", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLessThanOrEqualTo(String value) {
            addCriterion("email <=", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailRegexp(String value) {
            addCriterion("email regexp", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLike(String value) {
            addCriterion("email like", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotLike(String value) {
            addCriterion("email not like", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailIn(List<String> values) {
            addCriterion("email in", values, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotIn(List<String> values) {
            addCriterion("email not in", values, "email");
            return (Criteria) this;
        }

        public Criteria andEmailBetween(String value1, String value2) {
            addCriterion("email between", value1, value2, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotBetween(String value1, String value2) {
            addCriterion("email not between", value1, value2, "email");
            return (Criteria) this;
        }

        public Criteria andCodeIsNull() {
            addCriterion("code is null");
            return (Criteria) this;
        }

        public Criteria andCodeIsNotNull() {
            addCriterion("code is not null");
            return (Criteria) this;
        }

        public Criteria andCodeEqualTo(String value) {
            addCriterion("code =", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotEqualTo(String value) {
            addCriterion("code <>", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeGreaterThan(String value) {
            addCriterion("code >", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeGreaterThanOrEqualTo(String value) {
            addCriterion("code >=", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLessThan(String value) {
            addCriterion("code <", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLessThanOrEqualTo(String value) {
            addCriterion("code <=", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeRegexp(String value) {
            addCriterion("code regexp", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLike(String value) {
            addCriterion("code like", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotLike(String value) {
            addCriterion("code not like", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeIn(List<String> values) {
            addCriterion("code in", values, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotIn(List<String> values) {
            addCriterion("code not in", values, "code");
            return (Criteria) this;
        }

        public Criteria andCodeBetween(String value1, String value2) {
            addCriterion("code between", value1, value2, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotBetween(String value1, String value2) {
            addCriterion("code not between", value1, value2, "code");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidIsNull() {
            addCriterion("dingtalk_openid is null");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidIsNotNull() {
            addCriterion("dingtalk_openid is not null");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidEqualTo(String value) {
            addCriterion("dingtalk_openid =", value, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidNotEqualTo(String value) {
            addCriterion("dingtalk_openid <>", value, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidGreaterThan(String value) {
            addCriterion("dingtalk_openid >", value, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidGreaterThanOrEqualTo(String value) {
            addCriterion("dingtalk_openid >=", value, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidLessThan(String value) {
            addCriterion("dingtalk_openid <", value, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidLessThanOrEqualTo(String value) {
            addCriterion("dingtalk_openid <=", value, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidRegexp(String value) {
            addCriterion("dingtalk_openid regexp", value, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidLike(String value) {
            addCriterion("dingtalk_openid like", value, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidNotLike(String value) {
            addCriterion("dingtalk_openid not like", value, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidIn(List<String> values) {
            addCriterion("dingtalk_openid in", values, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidNotIn(List<String> values) {
            addCriterion("dingtalk_openid not in", values, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidBetween(String value1, String value2) {
            addCriterion("dingtalk_openid between", value1, value2, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkOpenidNotBetween(String value1, String value2) {
            addCriterion("dingtalk_openid not between", value1, value2, "dingtalkOpenid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidIsNull() {
            addCriterion("dingtalk_unionid is null");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidIsNotNull() {
            addCriterion("dingtalk_unionid is not null");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidEqualTo(String value) {
            addCriterion("dingtalk_unionid =", value, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidNotEqualTo(String value) {
            addCriterion("dingtalk_unionid <>", value, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidGreaterThan(String value) {
            addCriterion("dingtalk_unionid >", value, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidGreaterThanOrEqualTo(String value) {
            addCriterion("dingtalk_unionid >=", value, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidLessThan(String value) {
            addCriterion("dingtalk_unionid <", value, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidLessThanOrEqualTo(String value) {
            addCriterion("dingtalk_unionid <=", value, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidRegexp(String value) {
            addCriterion("dingtalk_unionid regexp", value, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidLike(String value) {
            addCriterion("dingtalk_unionid like", value, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidNotLike(String value) {
            addCriterion("dingtalk_unionid not like", value, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidIn(List<String> values) {
            addCriterion("dingtalk_unionid in", values, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidNotIn(List<String> values) {
            addCriterion("dingtalk_unionid not in", values, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidBetween(String value1, String value2) {
            addCriterion("dingtalk_unionid between", value1, value2, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUnionidNotBetween(String value1, String value2) {
            addCriterion("dingtalk_unionid not between", value1, value2, "dingtalkUnionid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridIsNull() {
            addCriterion("dingtalk_userid is null");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridIsNotNull() {
            addCriterion("dingtalk_userid is not null");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridEqualTo(String value) {
            addCriterion("dingtalk_userid =", value, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridNotEqualTo(String value) {
            addCriterion("dingtalk_userid <>", value, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridGreaterThan(String value) {
            addCriterion("dingtalk_userid >", value, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridGreaterThanOrEqualTo(String value) {
            addCriterion("dingtalk_userid >=", value, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridLessThan(String value) {
            addCriterion("dingtalk_userid <", value, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridLessThanOrEqualTo(String value) {
            addCriterion("dingtalk_userid <=", value, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridRegexp(String value) {
            addCriterion("dingtalk_userid regexp", value, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridLike(String value) {
            addCriterion("dingtalk_userid like", value, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridNotLike(String value) {
            addCriterion("dingtalk_userid not like", value, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridIn(List<String> values) {
            addCriterion("dingtalk_userid in", values, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridNotIn(List<String> values) {
            addCriterion("dingtalk_userid not in", values, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridBetween(String value1, String value2) {
            addCriterion("dingtalk_userid between", value1, value2, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDingtalkUseridNotBetween(String value1, String value2) {
            addCriterion("dingtalk_userid not between", value1, value2, "dingtalkUserid");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNull() {
            addCriterion("description is null");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNotNull() {
            addCriterion("description is not null");
            return (Criteria) this;
        }

        public Criteria andDescriptionEqualTo(String value) {
            addCriterion("description =", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotEqualTo(String value) {
            addCriterion("description <>", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThan(String value) {
            addCriterion("description >", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {
            addCriterion("description >=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThan(String value) {
            addCriterion("description <", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThanOrEqualTo(String value) {
            addCriterion("description <=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionRegexp(String value) {
            addCriterion("description regexp", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLike(String value) {
            addCriterion("description like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotLike(String value) {
            addCriterion("description not like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionIn(List<String> values) {
            addCriterion("description in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotIn(List<String> values) {
            addCriterion("description not in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionBetween(String value1, String value2) {
            addCriterion("description between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotBetween(String value1, String value2) {
            addCriterion("description not between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andMemberCodeIsNull() {
            addCriterion("member_code is null");
            return (Criteria) this;
        }

        public Criteria andMemberCodeIsNotNull() {
            addCriterion("member_code is not null");
            return (Criteria) this;
        }

        public Criteria andMemberCodeEqualTo(String value) {
            addCriterion("member_code =", value, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeNotEqualTo(String value) {
            addCriterion("member_code <>", value, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeGreaterThan(String value) {
            addCriterion("member_code >", value, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeGreaterThanOrEqualTo(String value) {
            addCriterion("member_code >=", value, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeLessThan(String value) {
            addCriterion("member_code <", value, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeLessThanOrEqualTo(String value) {
            addCriterion("member_code <=", value, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeRegexp(String value) {
            addCriterion("member_code regexp", value, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeLike(String value) {
            addCriterion("member_code like", value, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeNotLike(String value) {
            addCriterion("member_code not like", value, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeIn(List<String> values) {
            addCriterion("member_code in", values, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeNotIn(List<String> values) {
            addCriterion("member_code not in", values, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeBetween(String value1, String value2) {
            addCriterion("member_code between", value1, value2, "memberCode");
            return (Criteria) this;
        }

        public Criteria andMemberCodeNotBetween(String value1, String value2) {
            addCriterion("member_code not between", value1, value2, "memberCode");
            return (Criteria) this;
        }

        public Criteria andJoinTimeIsNull() {
            addCriterion("join_time is null");
            return (Criteria) this;
        }

        public Criteria andJoinTimeIsNotNull() {
            addCriterion("join_time is not null");
            return (Criteria) this;
        }

        public Criteria andJoinTimeEqualTo(String value) {
            addCriterion("join_time =", value, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeNotEqualTo(String value) {
            addCriterion("join_time <>", value, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeGreaterThan(String value) {
            addCriterion("join_time >", value, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeGreaterThanOrEqualTo(String value) {
            addCriterion("join_time >=", value, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeLessThan(String value) {
            addCriterion("join_time <", value, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeLessThanOrEqualTo(String value) {
            addCriterion("join_time <=", value, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeRegexp(String value) {
            addCriterion("join_time regexp", value, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeLike(String value) {
            addCriterion("join_time like", value, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeNotLike(String value) {
            addCriterion("join_time not like", value, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeIn(List<String> values) {
            addCriterion("join_time in", values, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeNotIn(List<String> values) {
            addCriterion("join_time not in", values, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeBetween(String value1, String value2) {
            addCriterion("join_time between", value1, value2, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinTimeNotBetween(String value1, String value2) {
            addCriterion("join_time not between", value1, value2, "joinTime");
            return (Criteria) this;
        }

        public Criteria andJoinedIsNull() {
            addCriterion("joined is null");
            return (Criteria) this;
        }

        public Criteria andJoinedIsNotNull() {
            addCriterion("joined is not null");
            return (Criteria) this;
        }

        public Criteria andJoinedEqualTo(Integer value) {
            addCriterion("joined =", value, "joined");
            return (Criteria) this;
        }

        public Criteria andJoinedNotEqualTo(Integer value) {
            addCriterion("joined <>", value, "joined");
            return (Criteria) this;
        }

        public Criteria andJoinedGreaterThan(Integer value) {
            addCriterion("joined >", value, "joined");
            return (Criteria) this;
        }

        public Criteria andJoinedGreaterThanOrEqualTo(Integer value) {
            addCriterion("joined >=", value, "joined");
            return (Criteria) this;
        }

        public Criteria andJoinedLessThan(Integer value) {
            addCriterion("joined <", value, "joined");
            return (Criteria) this;
        }

        public Criteria andJoinedLessThanOrEqualTo(Integer value) {
            addCriterion("joined <=", value, "joined");
            return (Criteria) this;
        }

        public Criteria andJoinedIn(List<Integer> values) {
            addCriterion("joined in", values, "joined");
            return (Criteria) this;
        }

        public Criteria andJoinedNotIn(List<Integer> values) {
            addCriterion("joined not in", values, "joined");
            return (Criteria) this;
        }

        public Criteria andJoinedBetween(Integer value1, Integer value2) {
            addCriterion("joined between", value1, value2, "joined");
            return (Criteria) this;
        }

        public Criteria andJoinedNotBetween(Integer value1, Integer value2) {
            addCriterion("joined not between", value1, value2, "joined");
            return (Criteria) this;
        }

    }

    public static class CriteriaString {
        private String id;

        public String getId() {
            return id;
        }
        public void setId(String _v) {
            id = _v;
        }
        private String account;

        public String getAccount() {
            return account;
        }
        public void setAccount(String _v) {
            account = _v;
        }
        private String password;

        public String getPassword() {
            return password;
        }
        public void setPassword(String _v) {
            password = _v;
        }
        private String name;

        public String getName() {
            return name;
        }
        public void setName(String _v) {
            name = _v;
        }
        private String mobile;

        public String getMobile() {
            return mobile;
        }
        public void setMobile(String _v) {
            mobile = _v;
        }
        private String realname;

        public String getRealname() {
            return realname;
        }
        public void setRealname(String _v) {
            realname = _v;
        }
        private String createTime;

        public String getCreateTime() {
            return createTime;
        }
        public void setCreateTime(String _v) {
            createTime = _v;
        }
        private String status;

        public String getStatus() {
            return status;
        }
        public void setStatus(String _v) {
            status = _v;
        }
        private String lastLoginTime;

        public String getLastLoginTime() {
            return lastLoginTime;
        }
        public void setLastLoginTime(String _v) {
            lastLoginTime = _v;
        }
        private String sex;

        public String getSex() {
            return sex;
        }
        public void setSex(String _v) {
            sex = _v;
        }
        private String avatar;

        public String getAvatar() {
            return avatar;
        }
        public void setAvatar(String _v) {
            avatar = _v;
        }
        private String idcard;

        public String getIdcard() {
            return idcard;
        }
        public void setIdcard(String _v) {
            idcard = _v;
        }
        private String province;

        public String getProvince() {
            return province;
        }
        public void setProvince(String _v) {
            province = _v;
        }
        private String city;

        public String getCity() {
            return city;
        }
        public void setCity(String _v) {
            city = _v;
        }
        private String area;

        public String getArea() {
            return area;
        }
        public void setArea(String _v) {
            area = _v;
        }
        private String address;

        public String getAddress() {
            return address;
        }
        public void setAddress(String _v) {
            address = _v;
        }
        private String email;

        public String getEmail() {
            return email;
        }
        public void setEmail(String _v) {
            email = _v;
        }
        private String code;

        public String getCode() {
            return code;
        }
        public void setCode(String _v) {
            code = _v;
        }
        private String dingtalkOpenid;

        public String getDingtalkOpenid() {
            return dingtalkOpenid;
        }
        public void setDingtalkOpenid(String _v) {
            dingtalkOpenid = _v;
        }
        private String dingtalkUnionid;

        public String getDingtalkUnionid() {
            return dingtalkUnionid;
        }
        public void setDingtalkUnionid(String _v) {
            dingtalkUnionid = _v;
        }
        private String dingtalkUserid;

        public String getDingtalkUserid() {
            return dingtalkUserid;
        }
        public void setDingtalkUserid(String _v) {
            dingtalkUserid = _v;
        }
        private String description;

        public String getDescription() {
            return description;
        }
        public void setDescription(String _v) {
            description = _v;
        }
        private String memberCode;

        public String getMemberCode() {
            return memberCode;
        }
        public void setMemberCode(String _v) {
            memberCode = _v;
        }
        private String joinTime;

        public String getJoinTime() {
            return joinTime;
        }
        public void setJoinTime(String _v) {
            joinTime = _v;
        }
        private String joined;

        public String getJoined() {
            return joined;
        }
        public void setJoined(String _v) {
            joined = _v;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }
}
